﻿#region Copyright (c) 2007-2011 SmartVault Corporation, all rights reserved.
// 
// http://www.opensource.org/licenses/mit-license.php
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
// 
#endregion
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CRMStore;
using Interop.SVault.Client.SDK;

namespace SampleClient
{
    public partial class OnlineAttachment : Form
    {
        private string _downloadUrl;

        public OnlineAttachment()
        {
            InitializeComponent();
        }

        public string DownloadUrl { get { return _downloadUrl; } }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            EnableOK();
        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            EnableOK();
        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            EnableOK();
        }

        private void EnableOK()
        {
            btnOK.Enabled =
                txtName.Text.Length > 0 && txtUri.Text.Length > 0;
        }

        private void OnlineAttachment_Load(object sender, EventArgs e)
        {
            btnOK.Enabled = false;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            try
            {
                IApplicationContext ctx = Data.GetToolbarContext();

                IContextDocumentList lst = ctx.ContextState.GetDocuments();

                IUploadDocumentList upload = 
                    lst.AttachOnlineDocumentWithResult(this.txtName.Text, this.txtDescription.Text, this.txtUri.Text, null);

                IContextDocument doc = upload.TryGetByOrdinal(0);

                _downloadUrl = doc.DownloadContentUri;

                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            catch (Exception error)
            {
                MessageBox.Show(this, error.Message);
            }
        }

        private CRMDatabase Data
        {
            get
            {
                return CRMDatabaseLoader.Instance.Data;
            }
        }
    }
}
